
var express = require("express");

var Router = express.Router();  //创建一个路由

var path = require("path");
var fsp = require("fs").promises;

// Router.get(routerPath,callback)   以get方式对路由进行拦截
// Router.post(routerPath,callback)  以post方式对路由进行拦截
// Router.all(routerPath,callback)   以所有方式对路由进行拦截

// routerPath 路由地址  可以是一级路由,也可以是二级路由
// callback   路由被访问时执行的回调函数


var dataUrl = path.join(__dirname, "../data/data.json");

// /data =>返回data.json中的所有数据
Router.get("/", function (req, res) {

    // res.send()    直接输出数据(text)
    // res.json()    以json形式输入数据
    // res.jsonp()   以jsonp形式输入数据 

    // 读取data.json -> 输入数据
    fsp.readFile(dataUrl, "utf8").then(data => {
        res.send(data);  // express =>中输出数据的方法(自己封装的)
    }).catch(err => {
        res.send(err.message)
    })

})

// /data/user  =>返回data.json中的user相关的数据
Router.get("/user", function (req, res) {
    // 读取data.json -> 输入数据
    fsp.readFile(dataUrl, "utf8").then(data => {
        var obj = JSON.parse(data); // 将读取的json字符串解析为对象
        var user = obj.user; //取值 => 数组
        if (user) {
            // res.end(JSON.stringify(user))
            res.json(user);  // 将数组转化为JSON字符串后返回给前端
        } else {
            res.send("/data/user not find data!");
        }

    }).catch(err => {
        res.send(err.message)
    })
})

// /data/list  =>返回data.json中的list相关的数据
Router.get("/list", function (req, res) {
    fsp.readFile(dataUrl, "utf8").then(data => {
        var obj = JSON.parse(data); // 将读取的json字符串解析为对象
        var list = obj.list; //取值 => 数组
        if (list) {
            // res.end(JSON.stringify(list))
            res.json(list);  // 将数组转化为JSON字符串后返回给前端
        } else {
            res.send("/data/list not find data!");
        }

    }).catch(err => {
        res.send(err.message)
    })
})

Router.get("/pro", function (req, res) {
    fsp.readFile(dataUrl, "utf8").then(data => {
        var obj = JSON.parse(data); // 将读取的json字符串解析为对象
        var pro = obj.pro; //取值 => 数组
        if (pro) {
            // res.end(JSON.stringify(pro))
            res.json(pro);  // 将数组转化为JSON字符串后返回给前端
        } else {
            res.send("/data/pro not find data!");
        }

    }).catch(err => {
        res.send(err.message)
    })
})



module.exports = Router;  //暴露创建的路由配置 (还需要配置到创建的服务中)

